A software design cycle that includes repeated stages of evaluation of evolving designs, prototypes or systems. The two main kinds of evaluation are formative evaluation at each stage to improve the design and summative evaluation at the end to assess whether the final design is sufficiently good.
Also known as iterative software development